#define TEST 1
#ifndef _ULMAP_
#define _ULMAP_

//ULMAP_Extended_IE 802.16e 
typedef struct ULExt_DIUC_DepIE_struct 
{
	uint16  Duration;	
    uint16  RepCodIndication;	
}UL_ExtDepIE;
typedef struct ULExt_DIUC_DepIE_11_struct 
{
	uint16 tmp;

}UL_ExtDepIE_11;
#define Test 2
//CDMA Bandwidth Request, CDMA Ranging
typedef struct ULExt_DIUC_DepIE_12_struct 
{
	uint16 OFDMASymOffset;
	uint16 SubOffset;
	uint16 NoOFDMASymbol;
	uint16 NoSubchannels;
	uint16 RangMethod;
	uint16 DedRangInd;
}UL_ExtDepIE_12;

//ULMAP_Extended_IE 802.16e 
//CDMA allocation UL-MAP IE format
typedef struct ULExt_DIUC_DepIE_14_struct 
{
	uint16 Duration; 
	uint16 UIUC;     
	uint16 RepCodInd;
	uint16 FNumIndex;
	uint16 RangCode; 
	uint16 RangSymb; 
	uint16 RangSbcl; 
	uint16 BWReqMdy; 
}UL_ExtDepIE_14;

//ULMAP_Extended_IE 802.16e 



//ULMAP_Extended_IE 802.16e p370

typedef union ULMAP_Extended_DIUC_union
{
    struct ULExt_DIUC_DepIE_struct    *DIUC_ExtDepIE ;
	struct ULExt_DIUC_DepIE_11_struct *DIUC_ExtDepIE_11;
	struct ULExt_DIUC_DepIE_12_struct *DIUC_ExtDepIE_12;
	struct ULExt_DIUC_DepIE_14_struct *DIUC_ExtDepIE_14;
	
	uint16                                       Ext_IE_15_DIUC;
}UMP_Ext_DIUC;

typedef struct MMsg_ULMAP_IE_struct
{
	uint16  CID;
	uint16  UIUC;
	uint16  EOM;//end_of_map;
	uint16  ISC;//is_self_cid;
	union   ULMAP_Extended_DIUC_union *UED;
	struct  MMsg_ULMAP_IE_struct *next;
}ULMAP_IE;

typedef struct MSG_ULMAP_struct
{
	uint16    MMType;
	uint16    UCDCount;
	uint16    StartTime;
	uint16    NoOFDMASymbol;
	ULMAP_IE *ULMap_IE ;
	uint16    Padding ;
}ULMAP ;
#endif